layui.use(['table', 'admin', 'ax', 'func', 'upload', 'form'], function () {
    var $ = layui.$;
    var table = layui.table;
    var $ax = layui.ax;
    var admin = layui.admin;
    var func = layui.func;
    var upload = layui.upload;
    var form = layui.form;

    /**
     * 社区Banner管理
     */
    var NanSellBanner = {
        tableId: "nanSellBannerTable"
    };

    /**
     * 初始化表格的列
     */
    NanSellBanner.initColumn = function () {
        return [[
            {align: 'center', toolbar: '#tableBar', title: '操作', width: 100},
            {field: 'imageUrl', sort: false, title: 'Banner图', templet: '#imageTpl', width: 100},
            {field: 'linkType', sort: false, title: '链接类型', templet: '#linkTypeTpl', width: 100},
            {field: 'productName', sort: false, title: '产品名称', width: 150},
            {field: 'linkUrl', sort: false, title: 'Banner链接'},
            {field: 'sort', sort: true, title: '排序', width: 80},
            {field: 'createTime', sort: false, title: '创建时间'}
        ]];
    };

    /**
     * 渲染表格
     */
    NanSellBanner.renderTable = function () {
        table.render({
            elem: '#' + NanSellBanner.tableId,
            url: Feng.ctxPath + '/nanSellBanner/listData',
            page: false,
            height: "full-158",
            cellMinWidth: 100,
            cols: NanSellBanner.initColumn(),
            parseData: function(res) {
                return {
                    "code": res.code === 200 ? 0 : res.code,
                    "msg": res.message,
                    "data": res.data
                };
            }
        });
    };

    /**
     * 打开添加Banner的弹窗
     */
    NanSellBanner.openAddDlg = function () {
        layer.open({
            type: 1,
            title: '添加Banner',
            area: ['600px', '600px'],
            content: $('#bannerDlg'),
            success: function(layero, index) {
                $('#bannerId').val('');
                $('#bannerForm')[0].reset();
                $('#imagePreview').html('');
                $('#productSelectArea').hide();
                $('#productNameArea').hide();
                $('#linkUrlArea').show();
                $('#imageSizeTip').text('备注：图片尺寸：693px × 259px');
                form.render();
            }
        });
    };

    /**
     * 删除Banner
     */
    NanSellBanner.onDeleteItem = function (data) {
        var operation = function () {
            var ajax = new $ax(Feng.ctxPath + "/nanSellBanner/delete", function (data) {
                Feng.success("删除成功!");
                table.reload(NanSellBanner.tableId);
            }, function (data) {
                Feng.error("删除失败!" + data.responseJSON.message + "!");
            });
            ajax.set("id", data.id);
            ajax.start();
        };
        Feng.confirm("是否删除该Banner?", operation);
    };

    /**
     * 初始化上传组件
     */
    upload.render({
        elem: '#uploadImage',
        url: Feng.ctxPath + '/system/upload',
        accept: 'images',
        acceptMime: 'image/*',
        done: function(res) {
            if (res.success) {
                $('#imageUrl').val(res.data.finalName);
                $('#imagePreview').html('<img src="' + Feng.cdn + res.data.finalName + '" style="height:100px;">');
                Feng.success("上传成功！");
            } else {
                Feng.error("上传失败！" + res.message);
            }
        },
        error: function() {
            Feng.error("上传失败！");
        }
    });

    /**
     * 监听链接类型改变
     */
    form.on('select(linkType)', function(data) {
        var linkType = parseInt(data.value);
        if (linkType === 3 || linkType === 4) {
            // 商品类型
            $('#productSelectArea').show();
            $('#productNameArea').show();
            $('#linkUrlArea').hide();
        } else {
            // 内链或外链
            $('#productSelectArea').hide();
            $('#productNameArea').hide();
            $('#linkUrlArea').show();
        }
        // Banner统一尺寸：693px × 259px
        $('#imageSizeTip').text('备注：图片尺寸：693px × 259px');
    });

    /**
     * 选择商品按钮点击事件
     */
    $('#btnSelectProduct').click(function() {
        admin.open({
            type: 2,
            title: '选择商品',
            area: ['900px', '600px'],
            content: Feng.ctxPath + '/nanSellerProducts/choose',
            end: function() {
                // 从选择器获取选中的商品
                var selectedProduct = window.selectedProduct;
                if (selectedProduct) {
                    $('#productId').val(selectedProduct.id);
                    $('#productName').val(selectedProduct.title);
                    $('#selectedProductName').text('已选择：' + selectedProduct.title);

                    // 优先使用商品广告图，没有则不自动填充
                    if (selectedProduct.adImg) {
                        $('#imageUrl').val(selectedProduct.adImg);
                        $('#imagePreview').html('<img src="' + Feng.cdn + selectedProduct.adImg + '" style="height:100px;">');
                    }

                    window.selectedProduct = null; // 清空
                }
            }
        });
    });

    /**
     * 监听表单提交
     */
    form.on('submit(saveBanner)', function(data) {
        var ajax = new $ax(Feng.ctxPath + "/nanSellBanner/add", function (data) {
            Feng.success("保存成功!");
            layer.closeAll();
            table.reload(NanSellBanner.tableId);
        }, function (data) {
            Feng.error("保存失败!" + data.responseJSON.message + "!");
        });
        ajax.set(data.field);
        ajax.start();
        return false;
    });

    /**
     * 监听工具条事件
     */
    table.on('tool(' + NanSellBanner.tableId + ')', function (obj) {
        var data = obj.data;
        var layEvent = obj.event;

        if (layEvent === 'delete') {
            NanSellBanner.onDeleteItem(data);
        }
    });

    // 添加按钮点击事件
    $('#btnAdd').click(function () {
        NanSellBanner.openAddDlg();
    });

    // 渲染表格
    NanSellBanner.renderTable();
});
